package com.cloudcross.ssp.model;

import java.util.Date;
import java.util.List;

import com.cloudcross.ssp.web.widget.SelectorController.ISelector;

/**
 * 投放管理中的投放管理表
 *
 * @author 杜武强
 */
public final class AdGroup implements ISelector {
    //投放id
    private Long id;
    //代理商id
    private Long agentId;
    //广告主id
    private Long advertiserId;
    //订单id
    private Long orderId;
    // 投放名称
    private String adGroupName;
    // 开始时间
    private Date startDate;
    // 结束时间
    private Date endDate;
    // 总预算
    private Double totalBudget;
    //投放模式（1-CPM,2-CPC）
    private Integer mode;
    //单价
    private Double price;
    // 每日预算 
    private Double dailyBudget;
    // 曝光总上限
    private Long maxImpression;
    // 点击总上限
    private Long maxClick;
    //转换总上限
    private Long maxConversion;
    // 每日曝光上限
    private Long dailyMaxImpression;
    // 每日点击上限
    private Long dailyMaxClick;
    // 每日转换上限
    private Long dailyMaxConversion;
    //单人曝光频次类型
    private Integer perImpressionType;
    //单人曝光频次
    private Long perImpression;
    //单人点击频次类型
    private Integer perClickType;
    //单人点击频次
    private Long perClick;
    //位置
    private String position;
    //点击找回
    private Integer retarget;
    //访客投放期
    private Long period;
    //状态
    private Integer status;
    //更新时间
    private Date updated;
    //这个活动的创意总数
    private Integer bannerNumber;
    //是否全客网站
    private Integer site;
    //操作系统 1-iOS，2-Android，3-WP,4-Symbian,5-MAC OS,6-Windows,7-other
    private String os;

    private Integer priority;          //优先级

    private String keyword;

    private String defaultUrl;

    private Integer adtype;

    private String html;
    private String js;

    private String displaytitle;

    private String displaytext;

    private Integer buyType;           //交易方式

    private Integer deviceType;        //设备类型（1PC，2WAP，3APP）

    private Integer speedMode;         //投放速度

    private String gender;            //性别

    private String age;               //年龄

    private Integer isEdit;              //是否编辑过-针对选择媒体时

    public Integer getAdtype() {
        return adtype;
    }

    public void setAdtype(Integer adtype) {
        this.adtype = adtype;
    }

    public String getDefaultUrl() {
        return defaultUrl;
    }

    public void setDefaultUrl(String defaultUrl) {
        this.defaultUrl = defaultUrl;
    }

    public String getKeyword() {
        return keyword;
    }

    public void setKeyword(String keyword) {
        this.keyword = keyword;
    }

    public Integer getPriority() {
        return priority;
    }

    public void setPriority(Integer priority) {
        this.priority = priority;
    }

    public Long getAgentId() {
        return agentId;
    }

    public void setAgentId(Long agentId) {
        this.agentId = agentId;
    }

    public Long getAdvertiserId() {
        return advertiserId;
    }

    public void setAdvertiserId(Long advertiserId) {
        this.advertiserId = advertiserId;
    }

    public Integer getSite() {
        return site;
    }

    public void setSite(Integer site) {
        this.site = site;
    }

    public Integer getMode() {
        return mode;
    }

    public void setMode(Integer mode) {
        this.mode = mode;
    }

    public Double getPrice() {
        return price;
    }

    public void setPrice(Double price) {
        this.price = price;
    }

    public String getPosition() {
        return position;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public Integer getRetarget() {
        return retarget;
    }

    public void setRetarget(Integer retarget) {
        this.retarget = retarget;
    }

    public Long getPeriod() {
        return period;
    }

    public void setPeriod(Long period) {
        this.period = period;
    }

    public Integer getBannerNumber() {
        return bannerNumber;
    }

    public void setBannerNumber(Integer bannerNumber) {
        this.bannerNumber = bannerNumber;
    }

    public Date getUpdated() {
        return updated;
    }

    public void setUpdated(Date updated) {
        this.updated = updated;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public String getAdGroupName() {
        return adGroupName;
    }

    public void setAdGroupName(String adGroupName) {
        this.adGroupName = adGroupName;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Double getTotalBudget() {
        return totalBudget;
    }

    public void setTotalBudget(Double totalBudget) {
        this.totalBudget = totalBudget;
    }

    public Double getDailyBudget() {
        return dailyBudget;
    }

    public void setDailyBudget(Double dailyBudget) {
        this.dailyBudget = dailyBudget;
    }

    public Long getMaxImpression() {
        return maxImpression;
    }

    public void setMaxImpression(Long maxImpression) {
        this.maxImpression = maxImpression;
    }

    public Long getMaxClick() {
        return maxClick;
    }

    public void setMaxClick(Long maxClick) {
        this.maxClick = maxClick;
    }

    public Long getMaxConversion() {
        return maxConversion;
    }

    public void setMaxConversion(Long maxConversion) {
        this.maxConversion = maxConversion;
    }

    public Long getDailyMaxImpression() {
        return dailyMaxImpression;
    }

    public void setDailyMaxImpression(Long dailyMaxImpression) {
        this.dailyMaxImpression = dailyMaxImpression;
    }

    public Long getDailyMaxClick() {
        return dailyMaxClick;
    }

    public void setDailyMaxClick(Long dailyMaxClick) {
        this.dailyMaxClick = dailyMaxClick;
    }

    public Long getDailyMaxConversion() {
        return dailyMaxConversion;
    }

    public void setDailyMaxConversion(Long dailyMaxConversion) {
        this.dailyMaxConversion = dailyMaxConversion;
    }

    public Integer getPerImpressionType() {
        return perImpressionType;
    }

    public void setPerImpressionType(Integer perImpressionType) {
        this.perImpressionType = perImpressionType;
    }

    public Long getPerImpression() {
        return perImpression;
    }

    public void setPerImpression(Long perImpression) {
        this.perImpression = perImpression;
    }

    public Integer getPerClickType() {
        return perClickType;
    }

    public void setPerClickType(Integer perClickType) {
        this.perClickType = perClickType;
    }

    public Long getPerClick() {
        return perClick;
    }

    public void setPerClick(Long perClick) {
        this.perClick = perClick;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getOs() {
        return os;
    }

    public void setOs(String os) {
        this.os = os;
    }

    public String getHtml() {
        return html;
    }

    public void setHtml(String html) {
        this.html = html;
    }

    public String getJs() {
        return js;
    }

    public void setJs(String js) {
        this.js = js;
    }

    public String getDisplaytitle() {
        return displaytitle;
    }

    public void setDisplaytitle(String displaytitle) {
        this.displaytitle = displaytitle;
    }

    public String getDisplaytext() {
        return displaytext;
    }

    public void setDisplaytext(String displaytext) {
        this.displaytext = displaytext;
    }

    public Integer getBuyType() {
        return buyType;
    }

    public void setBuyType(Integer buyType) {
        this.buyType = buyType;
    }

    public Integer getDeviceType() {
        return deviceType;
    }

    public void setDeviceType(Integer deviceType) {
        this.deviceType = deviceType;
    }

    public Integer getSpeedMode() {
        return speedMode;
    }

    public void setSpeedMode(Integer speedMode) {
        this.speedMode = speedMode;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public Integer getIsEdit() {
        return isEdit;
    }

    public void setIsEdit(Integer isEdit) {
        this.isEdit = isEdit;
    }

    @Override
    public String toString() {
        return "AdGroup{" +
                "id=" + id +
                ", agentId=" + agentId +
                ", advertiserId=" + advertiserId +
                ", orderId=" + orderId +
                ", adGroupName='" + adGroupName + '\'' +
                ", startDate=" + startDate +
                ", endDate=" + endDate +
                ", totalBudget=" + totalBudget +
                ", mode=" + mode +
                ", price=" + price +
                ", dailyBudget=" + dailyBudget +
                ", maxImpression=" + maxImpression +
                ", maxClick=" + maxClick +
                ", maxConversion=" + maxConversion +
                ", dailyMaxImpression=" + dailyMaxImpression +
                ", dailyMaxClick=" + dailyMaxClick +
                ", dailyMaxConversion=" + dailyMaxConversion +
                ", perImpressionType=" + perImpressionType +
                ", perImpression=" + perImpression +
                ", perClickType=" + perClickType +
                ", perClick=" + perClick +
                ", position='" + position + '\'' +
                ", retarget=" + retarget +
                ", period=" + period +
                ", status=" + status +
                ", updated=" + updated +
                ", bannerNumber=" + bannerNumber +
                ", site=" + site +
                ", os='" + os + '\'' +
                ", priority=" + priority +
                ", keyword='" + keyword + '\'' +
                ", defaultUrl='" + defaultUrl + '\'' +
                ", adtype=" + adtype +
                ", html='" + html + '\'' +
                ", js='" + js + '\'' +
                ", displaytitle='" + displaytitle + '\'' +
                ", displaytext='" + displaytext + '\'' +
                ", buyType=" + buyType +
                ", deviceType=" + deviceType +
                ", speedMode=" + speedMode +
                ", gender='" + gender + '\'' +
                ", age='" + age + '\'' +
                ", isEdit=" + isEdit +
                '}';
    }

    @Override
    public String getLabel() {
        return this.adGroupName;
    }

    @Override
    public String getValue() {
        return String.valueOf(this.id);
    }
}
